// 引入
import VueRouter from 'vue-router'
// 导入首页页面
import Home from '@/views/home'
// 引入文章界面
import Article from '@/views/article'
// 引入发布界面
import Publish from '@/views/publish'
// 全局 注册
import vue from 'vue'
// 引入路由
import Login from '@/views/login'
import auth from '@/utils/token'
import Layout from '@/views/Layout.vue'
import { Message } from 'element-ui'

vue.use(VueRouter)
// 初始化
const router = new VueRouter({
  // 路由规则
  routes: [
    {
      path: '/login', component: Login
    },
    {
      path: '/',
      component: Layout,
      children: [{ path: '/', component: Home },
        { path: 'article', component: Article },
        { path: 'publish', component: Publish }
      ]
    }

  ]
})

// 导航守卫
// to 去哪里
// from 从哪里来
// next 放行函数
router.beforeEach((to, from, next) => {
  const token = auth.getToken()
  // 非登录页，同时无token,就跳转到登录页
  if (to.path !== '/login' && !token) {
    // 非vue组件 无法使用Vue原型上的$message提示
    // 解决方案 单独导入Message 实现提示
    Message.error('登录信息失效，请重新登录')
    return next('/login')
  }
  next()
})
// 导出路由规则
export default router
